// https://www.lintcode.com/problem/longest-continuous-increasing-subsequence/description
class Solution {
public:
    /**
     * @param A: An array of Integer
     * @return: an integer
     */
    // 法一：dp
    // int longestIncreasingContinuousSubsequence(vector<int> &A) {
    //     if (A.empty()) return 0;
    //     int n = A.size();
    //     vector<int> result(n);
    //     vector<int> result1(n);
    //     result[0] = 1;
    //     result1[0] = 1;
    //     for (int i = 1; i < n; ++i)
    //     {
    //         if (A[i] > A[i - 1]) 
    //         {
    //             result[i] = result[i - 1] + 1;
    //             result1[i] = 1;
    //         }
    //         else
    //         {
    //             result[i] = 1;
    //             result1[i] = result1[i - 1] + 1;
    //         }
    //     }
    //     int maxVal = 0;
    //     for (int i = 0; i < n; ++i)
    //     {
    //         maxVal = max(result[i], maxVal);
    //         maxVal = max(result1[i], maxVal);
    //     }
    //     return maxVal;
    // }
    
    // 法二：贪心
    int longestIncreasingContinuousSubsequence(vector<int> &A) {
        if (A.empty()) return 0;
        int s = 1, l = 1, maxVal = 1;
        for (int i = 1; i < A.size(); ++i)
        {
            if (A[i] > A[i - 1]) 
            {
                s++;
                maxVal = max(maxVal, s);
            }
            else
                s = 1;
            if (A[i] < A[i - 1]) 
            {
                l++;
                maxVal = max(maxVal, l);
            }
            else
                l = 1;
        }
        return maxVal;
    }
};